package hoe;

import javax.servlet.http.HttpServlet;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

/**
 * HTTP szerver.
 *
 * @author imruf84
 */
public class HttpServer extends HttpServlet {

    /**
     * Bejelentkező oldal elérési útja.
     */
    public static final String LOGIN_PATH = "/login";
    /**
     * Kijelentkező oldal elérési útja.
     */
    public static final String LOGOUT_PATH = "/logout";
    /**
     * Játék oldalának elérési útja.
     */
    public static final String PLAY_PATH = "/play";
    /**
     * Post kérés.
     */
    public static int POST_REQUEST = 0;
    /**
     * Get kérés.
     */
    public static int GET_REQUEST = 1;
    
    /**
     * Konstruktor.
     * 
     * @param port port
     * @throws Exception kivétel
     */
    public HttpServer(int port) throws Exception {
        
        // Üzenetek toltása.
        org.eclipse.jetty.util.log.Log.setLog(new NothingLogger());
        
        // Szerver létrehozása.
        Server server = new Server(port);
        
        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.setContextPath("/");
        server.setHandler(context);
        context.addServlet(new ServletHolder(new LoginServlet()), LOGIN_PATH);
        context.addServlet(new ServletHolder(new LogoutServlet()), LOGOUT_PATH);
        ServletHolder psh = new ServletHolder(new PlayServlet());
        psh.setAsyncSupported(true);
        context.addServlet(psh, PLAY_PATH);
        
        server.start();
        
        System.out.println("HTTP server is listening at port " + port + "...");

    }

}
